/**
 *  window.h
 *  ASEngine
 *
 *	Date: 07/08/2013
 *
 *	Language: C++
 *
 *  @author Carl McCaffrey
 *
 */
#ifndef WINDOW_H
#define WINDOW_H

#include <Windows.h>
#include <xnamath.h>

enum Flags{
	WINDOW = 0x01,
	FULLSCREEN = 0x02
};

class Window
{
	private:
		XMFLOAT2 size;
		bool fullscreen;
		bool cursor;

		HWND hWnd;
		HINSTANCE* hInstance;

		static LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);

	public:
		bool Create(HINSTANCE* hinstance, XMFLOAT2 winsize, unsigned int flags);
		void Destroy(void);

		void SetTitle(const char* title);
		void CursorVisible(bool visible);

		bool GetFullScreen(void);
		bool CursorVisible(void);
		HWND GetHandle(void);
		XMFLOAT2 GetSize(void);
};

#endif // WINDOW_H